﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Text;

namespace Sinacor.Tools.Dado
{
    public abstract class DadoBase<Entidade> where Entidade : new()
    {
        public abstract void incluir(Entidade entidade);
        public abstract void alterar(Entidade entidade);
        public abstract void deletar(Entidade entidade);
        public abstract List<Entidade> consultar(Entidade entidade);
        /*
        protected virtual void atualizarTimestamp(string configKey)
        {
            DadosImplicitos.atualizarTimestamp(configKey);           
        }
         * */
    }

    
    public class DadosImplicitos
    {

        
        public static void atualizarTimestamp(string configKey)
        {
            string timestampUpdate = System.Configuration.ConfigurationManager.AppSettings["ATUALIZARTIMESTAMP"];
            if (!string.IsNullOrEmpty(timestampUpdate))
            {
                //este método não existiria, foi adicionado após o projeto terminar
                Dado.ResourceAccess<DadosImplicitos> dados = new ResourceAccess<DadosImplicitos>();
                using (IDbCommand cmd = dados.getCommand(timestampUpdate, CommandType.Text, configKey))
                {
                    cmd.ExecuteNonQuery();
                    cmd.Connection.Close();
                }
            }
        }
    }
}
